Основы ORM библиотеки Doctrine 2018 Приветствую вас, друзья. Представляю вам новый курс по основам ORM библиотеки Doctrine. Doctrine — это очень популярный, функциональный и довольно гибкий представитель библиотек, которые реализуют объектно-реляционное отображение баз данных. Библиотеки подобного рода избавляют нас от рутины создания и выполнения SQL запросов, для манипуляции над информацией, хранящейся в базе данных. Это и делает их такими востребованными. Согласитесь, значительно проще и удобнее вызвать парочку методов — нежели вручную составлять SQL запрос, а потом выполнять его на сервере СУБД. Все современные фреймворки уже давно отказались от такого подхода и активно используют ORM библиотеки. Само по себе объектно-реляционное отображение хорошо тем, что представляет физическую таблицу базы данных в виде простого класса, свойства которого, по сути, являются полями таблицы, а методы — действиями, которые можно осуществлять над ее данными. И вы, как разработчики, в этом случае, работаете с объектом определенного класса, а не с таблицей в базе данных. Данный курс будет интересен всем, кто знает язык PHP и активно использует его в своих проектах, а также тем, кто предпочитает разработку с использованием фреймворков — ведь указанная библиотека является частью многих из них. Традиционно обучение в курсе построено «от простого к сложному», начиная с самых основ: установки библиотеки, конфигурации, выполнения запросов, реализации связей и т. д. После изучения данного курса вы научитесь использовать библиотеку Doctrine в собственных проектах для работы с базой данных — а именно, выбирать, добавлять, редактировать и удалять данные, организовывать связи, создавать собственные типы данных и многое другое. Урок 1. Основы ORM библиотеки Doctrine. Установка и первые шаги: От автора: приветствую вас в первом уроке курса по основам библиотеки Doctrine ORM. Doctrine — это очень популярный, функциональный и довольно гибкий представитель библиотек, которые реализуют объектно-реляционное отображение баз данных. Библиотеки подобного рода избавляют от рутины создания и выполнения SQL запросов для манипуляции над информацией, хранящейся в базе данных. Это и делает их достаточно востребованными. Ведь согласитесь, значительно проще и удобнее вызвать парочку методов, нежели вручную составлять SQL запрос, а потом выполнять его на сервере СУБД. При этом все современные фреймворки уже давно отказались от такого подхода и активно используют ORM библиотеки. Само по себе объектно-реляционное отображение хорошо тем, что представляет физическую таблицу базы данных в виде простого класса, свойства которого, по сути, являются полями таблицы, а методы — действиями, которые можно осуществлять над ее данными. И вы, как разработчики, в этом случае работаете с объектом определенного класса, а не с таблицей в базе данных. В данном уроке мы рассмотрим с вами установку ORM библиотеки Doctrine в тестовый проект и опишем первую сущность — класс, представляющий реальную таблицу в базе данных. Также поговорим о мета-данных и создадим при помощи консоли таблицу, на основе тех данных, которые мы опишем в классе. Урок 2. Основы ORM библиотеки Doctrine. Мета-данные в виде XML и YML документов: От автора: на прошлом уроке мы с вами описали первую сущность и поговорили о мета-данных, которые описывают структуру таблицы в базе данных. Мы использовали формат специальных комментариев непосредственно в описываемом классе. Помимо этого, указанную информацию можно добавлять отдельно в документы формата YML, XML, что, собственно, и рассмотрим в текущем уроке. Также для закрепления пройденного материала, создадим несколько дополнительных таблиц и рассмотрим добавление информации в одну из них. Урок 3. Основы ORM библиотеки Doctrine. Basic Mapping: От автора: в предыдущих двух уроках мы с Вами познакомились с библиотекой ORM Doctrine и кратко рассмотрели кратко ее некоторые возможности. Теперь Вы представляете с чем имеете дело и, наверное, убедились, что это не совсем простой инструмент, но очень функциональный. Поэтому начиная с данного видео мы поэтапно, от простого к сложному, будем изучать технические нюансы по работе с данной системой. В текущем видео мы более подробно разберем базовое отображение структуры таблицы базы данных в соответствующих сущностях библиотеки Doctrine. При этом Вы познакомитесь с параметрами, которые можно указывать при создании классов моделей и которые непосредственно отвечают за формирование структуры реальной таблицы в СУБД. Урок 4. Основы ORM библиотеки Doctrine. SQL и DQL запросы: От автора: в данном курсе мы с Вами разбираем ORM библиотеку Doctrine применительно к СУБД MYSQL. При этом указанная база данных относится к типу реляционных баз данных и для манипуляции над информацией использует SQL запросы. Таким образом, используя те или иные методы библиотеки, мы в любом случае формируем запросы, которые отправляются на сервер. Но в документации Вы можете встретить довольно интересную аббревиатуру – DQL, что означает Doctrine Query Language – это некая интерпретация стандартного языка запросов. Поэтому в текущем видео мы с Вами поговорим о языке DQL, посмотрим на его отличия по сравнению с стандартным SQL и научимся выполнять запросы, используя оба указанных инструмента. Урок 5. Основы ORM библиотеки Doctrine. Использование методов класса EntityRepository: От автора: в предыдущем уроке мы с Вами научились выполнять как нативные SQL выражения, так и запросы нестандартного DQL. Вы увидели, что DQL намного удобен в использовании, чем SQL, так как избавляет нас от рутинного связывания выбранного результата с полями доступной сущности. Согласитесь, что и DQL не так уж хорош. То есть в любом случае мы пишем запрос руками, что не всегда хорошо. Поэтому в данном видео мы разберем методы, которые описаны в классе EntityRepository и которые позволяют получить определенный результат без формирования какого-либо запроса. Таким образом, в этом видео Вы научитесь работать с классом EntityRepository, выбирать данные без использования запросов, а также научитесь писать собственные классы-репозитории, расширяя базовый функционал. Урок 6. Основы ORM библиотеки Doctrine. Конструктор запросов: От автора: в текущем видео мы рассмотрим еще один способ доступа к данным – конструктор запросов. По итогам данного урока Вы узнаете, как поэтапно формировать нужное выражение DQL, используя последовательный вызов методов конструктора запросов. При этом мы разберем высокоуровневое и низкоуровневое API и посмотрим в чем их отличия. Урок 7. Основы ORM библиотеки Doctrine. One-To-One: От автора: начиная с данного урока мы приступаем к изучению связей между таблицами в базе данных, или если сказать более правильно, применительно к ORM библиотеке, – связей между сущностями. Ведь, по сути, те таблички, которые были рассмотрены, предельно просты и практически не встречаются в реальных проектах в виду своей бессвязности. В реальных проектах повсеместно реализованы различные отношения (связи между таблицами), как простые, так и сложные. Мы узнаем, как их формировать, используя рассматриваемую библиотеку. В текущем уроке будет рассмотрено отношение One-To-One – то есть один к одному. При этом Вы узнаете, как задавать параметры при формировании сущностей, которые как раз и будут определять указанное отношение. Узнаете, как добавляются и выбираются связанные данные. Урок 8. Основы ORM библиотеки Doctrine. One-To-Many: От автора: в этом видео будет рассмотрено отношение под общим названием One-To-Many – то есть один ко многим. Узнаете реализацию двух видов указанной связи – одностороннюю и двустороннюю. Узнаете, как с помощью конструктора запросов, который был рассмотрен ранее, выбирать данные из связанных таблиц и отображать данные на экране. Рассмотрены xml и yml форматы, описания параметров создаваемых сущностей. Урок 9. Основы ORM библиотеки Doctrine. Many-To-Many: От автора: данный урок завершает небольшой цикл видео по изучению отношений между сущностями. Связь под название Many-To-Many – многие ко многим, не зря вынесена напоследок, ведь является самой сложной как в понимании, так и в реализации. На данном этапе у Вас уже должно быть четкое представление и определенные навыки по описанию и работе с отношениями других видов, а значит понять и изучить «многие ко многим» не составит труда. В данном видео вы узнаете способы формирования отношения «многие ко многим», рассмотрена односторонняя и двусторонняя реализации, а также способы по выборке и добавлении данных. Урок 10. Основы ORM библиотеки Doctrine. Транзакции. Пагинация: От автора: в теории любой базы данных выделяют такое понятие как транзакции, благодаря которым гарантировано будет выполнено необходимое количество заданных выражений, а значит выполнено изменение определенного количества информации в базе данных. Поэтому в этом видео мы рассмотрим способы определения транзакций, используя средства библиотеки Doctrine. Вы увидите, что реализуются они просто и элегантно, как, впрочем, и все в рассматриваемой ORM. Также Вы познакомитесь с достаточно специфическим инструментом, благодаря которому можно заложить основу механизма формирования постраничной навигации. Урок 11. Основы ORM библиотеки Doctrine. События: От автора: события – это понятие, которое очень часто упоминается как в библиотеках, фреймворках и CMS, так и языках программирования. По сути – это действия, на которые мы можем определенным образом реагировать. Библиотека Doctrine содержит определенные инструменты, благодаря которым можно регистрировать обработчики необходимых событий. По итогам данного видео Вы узнаете, что такое события, как они возникают в библиотеке Doctrine и каких видов бывают. Также мы узнаем, как регистрировать обработчики, то есть методы, которые будут вызываться на исполнение при срабатывании событий. И узнаем три основных способа взаимодействия с событиями. Урок 12. Основы ORM библиотеки Doctrine. Фильтры: От автора: довольно часто при разработке веб-приложений и выборке определенной информации из базы данных необходимо накладывать одни и те же условия для правильного получения необходимых данных. То есть накладывать определенные фильтры, которые могут быть общими для множества моделей. В данном уроке мы с Вами узнаем об инструментах, которые позволят вынести в отдельные модули вышеуказанные параметры, что позволит значительно сэкономить время на разработку и избежать дублирования кода. Урок 13. Основы ORM библиотеки Doctrine. Собственные типы данных: От автора: при создании или обновлении отдельных свойств сущностей всегда необходимо указывать тип данных, которые будут сохраняться. Как показывает практика, бывают ситуации, когда для некоторых специфических данных просто не удается подобрать подходящий стандартный тип. Приходится создавать свой собственный тип, который будет полностью удовлетворять поставленным задачам. В этом видео будет показано как это делается. Урок 14. Основы ORM библиотеки Doctrine. Кэширование: От автора: в данное время быстродействие проекта — это параметр, который встречается абсолютно в каждом техническом задании на разработку сайта. Это важно не только для восприятия пользователем сайта, но и для поисковой оптимизации. Поэтому в данном уроке Вы узнаете некоторые варианты оптимизации выборки больших объемов данных. По итогам данного урока Вы узнаете, как кэшировать данные результатов запросов, используя различные драйверы кэша. Также узнаете, как в библиотеке Doctrine обрабатываются большие объемы данных.